package com.sh.rpc.model;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

@Data
public class ServiceMetaInfo {


    /**
     * 名称
     */
    private String serviceName;

    /**
     * 版本号
     */
    private String serviceVersion = "1.0";

    /**
     * 域名
     */
    private String serviceHost;  // localhost
    /**
     * 端口号
     */
    private int servicePort;

    /**
     * 分组
     */
    private String serviceGroup = "default";

    /**
     * 获取服务键名
     */
    public String getServiceKey() {
        // 返回服务名和版本号的字符串，格式为"{服务名}:{版本号}"
        return String.format("%s:%s", serviceName, serviceVersion);
    }

    /**
     * 获取注册节点
     */
    public String getServiceNodeKey() {
        return String.format("%s/%s:%s", getServiceKey(), serviceHost, servicePort);
    }


    /**
     * 获取完整服务地址
     */
    public String getServiceAddress(){
        if ( !StrUtil.contains(serviceHost, "http")){
            return String.format("http://%s:%s", serviceHost, servicePort);
        }
        return String.format("%s:%s", serviceHost, servicePort);
    }

}
